using System.Drawing;
using Beaker.OpenCube.Game;

namespace Beaker.OpenCube.Textures
{
	public interface ITexturePack
	{
		/// <summary>
		/// Get the texture for the given block
		/// </summary>
		/// <param name="block">The block to get the texture for</param>
		/// <returns>The texture for the requested block</returns>
		BlockTexture GetBlockTexture( Block block );

		// Image GetStaticColourizedBlockTexture( Block block, BlockTextureFace face );

		/// <summary>
		/// Gets a biome colouring of a given type in a given biome.
		/// </summary>
		/// <param name="biomeColorType">Type of the biome.</param>
		/// <param name="biomeColorBlockType">Type of the biome color block.</param>
		/// <returns>
		/// The colour of the block type in the requested biome.
		/// </returns>
		Color GetBiomeColour( BiomeColorType biomeColorType, BiomeColorBlockType biomeColorBlockType );

		/// <summary>
		/// Gets image from the specified relative path
		/// </summary>
		/// <param name="relativePath">The relative path of the image</param>
		/// <returns>The requested bitmap</returns>
		Bitmap GetImage( string relativePath );
	}
}